#字典
# 一种存储键值对的数据结构

# 1.创建
# a = {}
# b = dict()
# print(type(a))
# print(type(b))

# 2.初始化
# a = {'id' : 1,'name' : 'ZhangSan','age' : 18}
# print(a)
# 建议写法：
# 最后一对键值对后的逗号可写可不写
# a = {
#     "id" : 1,
#     'name' : "ZhangSan",
#     'age' : 22,
# }
# print(a)

# 3.字典相关操作
# （1）用 in 查找 key 是否在字典中
# a = {
#     'id' : 1,
#     'name' : 'ZhangSan'
# }
# print('id' in a)
# print('ClassId' in a)
# print('name' not in a)
# print('ClassName' not in a)
#
# # in 只能查找 key，对 value不起作用
# print('ZhangSan' in a)

# (2)使用[]根据key获取value
# a = {
#     'id' : 1,
#     'name' : 'ZhangSan',
#     100 : 'lisi'
# }
# print(a['name'])
# print(a['id'])
# print(a[100])
# # 若key不存在则报错KeyError
# print(a['lisi'])

# (3)字典的增删改（所有操作均针对key）
# # a.增加元素[]
# a = {
#     'id' : 1,
#     'name' : 'ZhangSan',
# }
# print(a)
# # key不存在为插入新元素
# a['age'] = 18
# print(a)
# # b.修改[]，key存在为修改
# a['age'] = 19
# print(a)
#
# # c.删除元素pop
# a.pop('age')
# print(a)
# # # 删除不存在的key会报错
# # a.pop('class')
# # print(a)

# (4)字典的遍历，python中的遍历顺序和插入顺序一致
# 利用 for 进行遍历（类似auto）
# a = {
#     'id' : 1,
#     'name' : 'ZhangSan',
#     'score' : 150
# }

# # 形式1：
# for key in a :
#     print(key,a[key])
# # 形式2:
# for key in a.keys():
#         print(key, a[key])

# # 获取所有key,keys()
# print(a.keys())

# # 获取所有value,values()
# print(a.values())

# # 获取所有键值对：
# # a.items() 返回一个包含字典中所有键值对的视图对象。每个键值对是一个元组 (key, value)，其中 key 是字典的键，value 是对应的值。

# # 集体打印
# print(a.items())
# # 分开打印
# for key, value in a.items():
#     print(key, value)
